1. Technical Field
At least some example embodiments of the inventive concepts relate generally to semiconductor memory devices, and more particularly to a non-volatile memory device, a memory system including a non-volatile memory device and a method of writing data in a non-volatile memory device.
2. Discussion of the Related Art
Semiconductor memory devices may be divided into volatile memory devices and non-volatile memory devices according to whether the stored data are maintained when power is off. The non-volatile memory device may include an electrically erasable and programmable ROM (EEPROM).
The operation modes of the EEPROM may include a program mode to write data in memory cells, a read mode to read out the data stored in the memory cells and an erase mode to initialize the memory cells by deleting the stored data. In incremental step pulse programming (ISPP), verification and reprogramming after the verification may be repeated until the verification is successful.
A multi-level cell (MLC) may store at least two data bits. When the N bits are stored in each MLC, the distribution of the threshold voltages of the MLCs may be divided into 2N states and each state may represent a corresponding value of the N-bit data. For example, when two bits are stored in each MLC, the distribution of the threshold voltages may be divided into four states. When the bit value ‘0’ of the write data indicates ‘program permission’ and the bit value ‘1’ indicates ‘program prohibition’, the four states may be represented as ‘11’, ‘10’, ‘01’ and ‘00’ in an order of the increasing threshold voltages. In this case, ‘11’ corresponds to an erase state having the lowest threshold voltage distribution of the memory cells that are not programmed.
The distribution distortion may be caused through the program operation due to floating gate coupling between the memory cells coupled to the adjacent word lines. If the distribution distortion is serious, the data may not be written in the memory cells exactly and errors may occur in the reading the stored data.